home *** CD-ROM | disk | FTP | other *** search
- // Copyright (C) 1997-2002 Alias|Wavefront,
- // a division of Silicon Graphics Limited.
- //
- // The information in this file is provided for the exclusive use of the
- // licensees of Alias|Wavefront. Such users have the right to use, modify,
- // and incorporate this code into other products for purposes authorized
- // by the Alias|Wavefront license agreement, without fee.
- //
- // ALIAS|WAVEFRONT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- // INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- // EVENT SHALL ALIAS|WAVEFRONT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- // CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- // DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- // TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- // PERFORMANCE OF THIS SOFTWARE.
- //
- source dynCreateLayout.mel;
- //
- // Alias|Wavefront Script File
- // MODIFY THIS AT YOUR OWN RISK
- //
- // Creation Date: April, 1997
- // Author: Carol Levy
- //
- // Description:
- // This script contains code to create the layouts for the
- // dynamics option boxes (for Dynamics menus).
- //
- // Input Arguments to dynCreateLayout():
- // string $parent -- the layout parent
- // int $theCmd -- the command for which the layout is being created
- // int $isCreate -- create or add mode
- //
- // Return Value:
- // None.
- //
-
- global proc createExtendFluidLayout( string $parent )
- {
- checkBoxGrp -label "Rebuild Initial State" -label1 ""
- -ann "Prevents invalidation of Initial State cache when changing fluid resolution."
- extendFluidRebuildIC;
- separator;
- intSliderGrp -label "Extend -X By:"
- -ann "Extend Negative X"
- -min -5 -max 10 -fmn -50 -fmx 100 -el "Voxels"
- extendFluidMinX;
- intSliderGrp -label "Extend X By:"
- -ann "Extend X."
- -min -5 -max 10 -fmn -50 -fmx 100 -el "Voxels"
- extendFluidMaxX;
- intSliderGrp -label "Extend -Y By:"
- -ann "Extend negative Y."
- -min -5 -max 10 -fmn -50 -fmx 100 -el "Voxels"
- extendFluidMinY;
- intSliderGrp -label "Extend Y By:"
- -ann "Extend Y."
- -min -5 -max 10 -fmn -50 -fmx 100 -el "Voxels"
- extendFluidMaxY;
- separator;
- text -align left -l " 3D only:";
- intSliderGrp -label "Extend -Z By:"
- -ann "Extend negative Z."
- -min -5 -max 10 -fmn -50 -fmx 100 -el "Voxels"
- extendFluidMinZ;
- intSliderGrp -label "Extend Z By:"
- -ann "Extend Z."
- -min -5 -max 10 -fmn -50 -fmx 100 -el "Voxels"
- extendFluidMaxZ;
- }
-
- global proc createResampleFluidLayout( string $parent )
- {
- checkBoxGrp -label "Rebuild Initial State" -label1 ""
- -ann "Prevents invalidation of Initial State cache when changing fluid resolution."
- resampleFluidRebuildIC;
- separator;
- intSliderGrp -label "X Resolution"
- -ann "X Resolution"
- -min 3 -max 100 -fmx 1000
- resampleFluidX;
- intSliderGrp -label "Y Resolution"
- -ann "Y Resolution"
- -min 3 -max 100 -fmx 1000
- resampleFluidY;
- separator;
- text -align left -l " 3D only:";
- intSliderGrp -label "Z Resolution"
- -ann "Z resolution"
- -min 3 -max 100 -fmx 1000
- resampleFluidZ;
- }
-
- global proc createCreate3DFluidLayout( string $parent )
- {
- global float $dynMaxFloatField;
-
- intSliderGrp -label "X Resolution"
- -ann "X Resolution"
- -min 3 -max 100 -fmx 1000
- create3DFluidXRes;
-
- intSliderGrp -label "Y Resolution"
- -ann "Y Resolution"
- -min 3 -max 100 -fmx 1000
- create3DFluidYRes;
-
- intSliderGrp -label "Z Resolution"
- -ann "Z Resolution"
- -min 3 -max 100 -fmx 1000
- create3DFluidZRes;
-
- separator;
- floatSliderGrp -l "X Size"
- -ann "X size"
- -field true
- -min 0.00001 -max 100
- -fmn 0.00001 -fmx $dynMaxFloatField
- -pre 3 -step 10
- create3DFluidXSize;
-
- floatSliderGrp -l "Y Size"
- -ann "Y size"
- -field true
- -min 0.00001 -max 100
- -fmn 0.00001 -fmx $dynMaxFloatField
- -pre 3 -step 10
- create3DFluidYSize;
-
- floatSliderGrp -l "Z Size"
- -ann "Z size"
- -field true
- -min 0.00001 -max 100
- -fmn 0.00001 -fmx $dynMaxFloatField
- -pre 3 -step 10
- create3DFluidZSize;
-
- }
-
- global proc createCreate2DFluidLayout( string $parent )
- {
- global float $dynMaxFloatField;
-
- intSliderGrp -label "X Resolution"
- -ann "X Resolution"
- -min 3 -max 100 -fmx 1000
- create2DFluidXRes;
-
- intSliderGrp -label "Y Resolution"
- -ann "Y Resolution"
- -min 3 -max 100 -fmx 1000
- create2DFluidYRes;
-
- separator;
- floatSliderGrp -l "X Size"
- -ann "X size"
- -field true
- -min 0.00001 -max 100
- -fmn 0.00001 -fmx $dynMaxFloatField
- -pre 3 -step 10
- create2DFluidXSize;
-
- floatSliderGrp -l "Y Size"
- -ann "Y size"
- -field true
- -min 0.00001 -max 100
- -fmn 0.00001 -fmx $dynMaxFloatField
- -pre 3 -step 10
- create2DFluidYSize;
-
- floatSliderGrp -l "Z Size"
- -ann "Z size"
- -field true
- -min 0.00001 -max 100
- -fmn 0.00001 -fmx $dynMaxFloatField
- -pre 3 -step 10
- create2DFluidZSize;
-
-
- }
-
- global proc createMakeCollideFluidLayout( string $parent )
- {
- intSliderGrp -label "Tessellation Factor"
- -ann "Tessellation Factor"
- -min 2 -max 1000
- tessellationFactor;
- }
-
- global proc flEmitterMaxDistCB()
- {
-
- // If the user sets max distance less than min distance,
- // reset min distance to be the same as max distance.
- //
- float $minDist = `floatSliderGrp -q -v flEmitterMinDistance`;
- float $maxDist = `floatSliderGrp -q -v flEmitterMaxDistance`;
-
- if ($maxDist < $minDist)
- {
- floatSliderGrp -e -v $maxDist flEmitterMinDistance;
- }
- }
-
- global proc flEmitterMinDistCB()
- {
- // If the user sets min distance greater than max distance,
- // reset max distance to be the same as min distance.
- //
- float $minDist = `floatSliderGrp -q -v flEmitterMinDistance`;
- float $maxDist = `floatSliderGrp -q -v flEmitterMaxDistance`;
-
- if ($minDist > $maxDist)
- {
- floatSliderGrp -e -v $minDist flEmitterMaxDistance;
- }
- }
-
- global proc dynFluidEmitterCycleOptionChoice(string $parent)
- {
- setParent $parent;
- int $choice = `optionMenuGrp -q -sl flEmitterCycleOM`;
-
- if ($choice == 1) // no cycling
- {
- intSliderGrp -e -enable false flEmitterCycleInterval;
- }
- else
- {
- intSliderGrp -e -enable true flEmitterCycleInterval;
- }
- }
-
- global proc setDimmingForVolumeFluidEmitterAttributes( string $parent )
- {
- // This generic proc is called by all "add emitter"
- // option boxes. It dims controls depending on what the
- // volume-shape option menu is set to. If those
- // controls don't exist (in the emit from object case,
- // for example) then just do nothing.
- //
- if( !`optionMenuGrp -q -exists flEmitterVolumeShapeOM` ) {
- return;
- }
-
- setParent $parent;
-
- string $type = `optionMenuGrp -q -v flEmitterTypeOM`;
-
- if( $type != "Volume" )
- {
- // Non-volume type. Disable all volume controls.
- //
- optionMenuGrp -e -enable false flEmitterVolumeShapeOM;
- floatSliderGrp -e -enable false flEmitterVolumeOffsetX;
- floatSliderGrp -e -enable false flEmitterVolumeOffsetY;
- floatSliderGrp -e -enable false flEmitterVolumeOffsetZ;
- floatSliderGrp -e -enable false flEmitterVolumeSweep;
- floatSliderGrp -e -enable false flEmitterTorusSectionRadius;
-
- text -e -enable true flEmitterVolumeEnablePrompt;
- }
- else
- {
- // Volume type.
- // Set all volume controls to defaults, first
- //
- optionMenuGrp -e -enable true flEmitterVolumeShapeOM;
- floatSliderGrp -e -enable true flEmitterVolumeOffsetX;
- floatSliderGrp -e -enable true flEmitterVolumeOffsetY;
- floatSliderGrp -e -enable true flEmitterVolumeOffsetZ;
- floatSliderGrp -e -enable true flEmitterVolumeSweep;
- floatSliderGrp -e -enable false flEmitterTorusSectionRadius;
- text -e -enable false flEmitterVolumeEnablePrompt;
-
- int $volShape = `optionMenuGrp -q -sl flEmitterVolumeShapeOM`;
-
- // Now disable selected ones as necessary
- //
- if ($volShape == 1) // cube
- {
- floatSliderGrp -e -enable false flEmitterVolumeSweep;
- }
- else
- if ($volShape == 5) // torus
- {
- floatSliderGrp -e -enable true flEmitterTorusSectionRadius;
- }
- }
- }
-
- global proc dynFluidEmitterOptionChoice(string $parent)
- {
- setParent $parent;
-
- string $choice = `optionMenuGrp -q -v flEmitterTypeOM`;
-
- // Omni Point
- //
- if ($choice == "Omni")
- {
- floatSliderGrp -e -enable true flEmitterMinDistance;
- floatSliderGrp -e -enable true flEmitterMaxDistance;
- }
- // Surface
- //
- else if ($choice == "Surface")
- {
- floatSliderGrp -e -enable true flEmitterMinDistance;
- floatSliderGrp -e -enable true flEmitterMaxDistance;
- }
- // Curve
- //
- else if ($choice == "Curve")
- {
- floatSliderGrp -e -enable true flEmitterMinDistance;
- floatSliderGrp -e -enable true flEmitterMaxDistance;
- }
- // Volume
- //
- else if ($choice == "Volume")
- {
- floatSliderGrp -e -enable false flEmitterMinDistance;
- floatSliderGrp -e -enable false flEmitterMaxDistance;
- }
-
- setDimmingForVolumeFluidEmitterAttributes( $parent );
- }
-
- global proc createFluidEmitterLayout( string $parent )
- {
- global float $dynMaxFloatField;
- global float $dynMinFloatField;
-
- setParent $parent;
-
- // Emitter Name Widget
- //
- textFieldGrp -l "Emitter Name"
- -annotation "Name for the new emitter"
- flEmitterName;
-
- checkBoxGrp -l "Parent to Container" -label1 ""
- -annotation "Parent emitter to container, or place at directly at center of container"
- flEmitterParenting;
-
- // Basic Emitter Attributes Layout
- //
- frameLayout -l "Basic Emitter Attributes"
- -bv true -lv true -cll true -cl false -mh 4
- flEmitterBasicFL;
- columnLayout flEmitterBasicCL;
-
- // Emitter Types Option Menu
- //
- optionMenuGrp -l "Emitter Type"
- -cc ("dynFluidEmitterOptionChoice " + $parent)
- -annotation "Select the emitter type: either omni-directional or volume"
- flEmitterTypeOM;
- menuItem -l "Omni" flEmitterOmniPoint;
- menuItem -l "Volume" flEmitterVolume;
-
- floatSliderGrp -l "Density Rate (/Voxel/Sec)"
- -ann "Density emission per voxel per second"
- -field true
- -min 0 -max 500
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 10
- flEmitterDensityRate;
-
- floatSliderGrp -l "Heat Rate (/Voxel/Sec)"
- -ann "Heat emission per voxel per second"
- -field true
- -min 0 -max 500
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 10
- flEmitterHeatRate;
-
- floatSliderGrp -l "Fuel Rate (/Voxel/Sec)"
- -ann "Fuel emission per voxel per second"
- -field true
- -min 0 -max 500
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 10
- flEmitterFuelRate;
-
- floatSliderGrp -l "Fluid Dropoff"
- -ann "Fluid dropoff within volume"
- -field true
- -min 0 -max 10
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step .1
- flEmitterFluidDropoff;
-
- optionMenuGrp -l "Cycle Emission"
- -ann "Restart random stream for this emitter each frame or after some number of particles"
- -cc ("dynFluidEmitterCycleOptionChoice " + $parent)
- flEmitterCycleOM;
- menuItem -l "None (timeRandom off)" flEmitterCycleNone;
- menuItem -l "Frame (timeRandom on)" flEmitterCycleFrame;
- // menuItem -l "By Particle Count" flEmitterCycleCount;
-
- intSliderGrp -l "Cycle Interval"
- -ann "Number of frames/particles between restarts of random stream"
- -field true
- -min 1 -max 100
- -fmx $dynMaxFloatField
- //-pre 3 -step 0.5
- flEmitterCycleInterval;
-
- setParent ..;
- setParent ..;
-
-
- // Direction Layout
- //
- frameLayout -l "Distance Attributes"
- -bv true -lv true -cll true -cl true -mh 4
- flEmitterDirectionFL;
- columnLayout flEmitterDirectionCL;
-
- floatSliderGrp -l "Max Distance"
- -ann "Emit particles in a sphere bounded by this distance (does not apply to volumes)"
- -field true
- -min 0 -max 10
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- -cc flEmitterMaxDistCB
- flEmitterMaxDistance;
-
- floatSliderGrp -l "Min Distance"
- -ann "Emit particles in a sphere bounded by this distance (does not apply to volumes)"
- -field true
- -min 0 -max 10
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- -cc flEmitterMinDistCB
- flEmitterMinDistance;
-
- setParent ..;
- setParent ..;
-
- // Volume Emitter Attributes Layout
- //
- int $collapse = 0;
-
- frameLayout -l "Volume Emitter Attributes"
- -bv true -lv true -cll true -cl $collapse -mh 4
- flEmitterVolumeFL;
- columnLayout flEmitterVolumeCL;
-
- text -align left -l "Set emitter type to Volume to enable" flEmitterVolumeEnablePrompt;
-
- optionMenuGrp -l "Volume Shape"
- -ann "Determines where particles are created (for volume type emitter, only)"
- -cc ("setDimmingForVolumeFluidEmitterAttributes " + $parent)
- flEmitterVolumeShapeOM;
- menuItem -l "Cube" flEmitterCube;
- menuItem -l "Sphere" flEmitterSphere;
- menuItem -l "Cylinder" flEmitterCylinder;
- menuItem -l "Cone" flEmitterCone;
- menuItem -l "Torus" flEmitterTorus;
-
- floatSliderGrp -label "Volume Offset X"
- -ann "Move volume away from actual emitter location"
- -field true
- -min -10 -max 10
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- flEmitterVolumeOffsetX;
-
- floatSliderGrp -label "Volume Offset Y"
- -ann "Move volume away from actual emitter location"
- -field true
- -min -10 -max 10
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- flEmitterVolumeOffsetY;
-
- floatSliderGrp -label "Volume Offset Z"
- -ann "Move volume away from actual emitter location"
- -field true
- -min -10 -max 10
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- flEmitterVolumeOffsetZ;
-
- floatSliderGrp -label "Volume Sweep"
- -ann "Change extent of volume, as in modelling"
- -field true
- -min 0 -max 360
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 3.6
- flEmitterVolumeSweep;
-
- floatSliderGrp -label "Section Radius"
- -ann "Change size of torus volume, as in modelling"
- -field true
- -min 0 -max 1.0
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 0.1
- flEmitterTorusSectionRadius;
-
- setParent ..;
- setParent ..;
- }
-
- global proc createFluidEmitFromObjectLayout( string $parent )
- {
- global float $dynMaxFloatField;
- global float $dynMinFloatField;
-
- setParent $parent;
-
- // Emitter Name Widget
- //
- textFieldGrp -l "Emitter Name"
- -annotation "Name for the new emitter"
- flEmitterName;
-
- // Basic Emitter Attributes Layout
- //
- frameLayout -l "Basic Emitter Attributes"
- -bv true -lv true -cll true -cl false -mh 4
- flEmitterBasicFL;
- columnLayout flEmitterBasicCL;
-
- // Emitter Types Option Menu
- //
- optionMenuGrp -l "Emitter Type"
- -cc ("dynFluidEmitterOptionChoice " + $parent)
- -annotation "Select the emitter type: either omni-directional, surface, or curve"
- flEmitterTypeOM;
- menuItem -l "Omni" flEmitterOmniPoint;
- menuItem -l "Surface" flEmitterSurface;
- menuItem -l "Curve" flEmitterCurve;
-
- floatSliderGrp -l "Density Rate (/Voxel/Sec)"
- -ann "Density emission per voxel per second"
- -field true
- -min 0 -max 500
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 10
- flEmitterDensityRate;
-
- floatSliderGrp -l "Heat Rate (/Voxel/Sec)"
- -ann "Heat emission per voxel per second"
- -field true
- -min 0 -max 500
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 10
- flEmitterHeatRate;
-
- floatSliderGrp -l "Fuel Rate (/Voxel/Sec)"
- -ann "Fuel emission per voxel per second"
- -field true
- -min 0 -max 500
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 10
- flEmitterFuelRate;
-
- floatSliderGrp -l "Fluid Dropoff"
- -ann "Fluid dropoff within volume"
- -field true
- -min 0 -max 10
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step .1
- flEmitterFluidDropoff;
-
- optionMenuGrp -l "Cycle Emission"
- -ann "Restart random stream for this emitter each frame or after some number of particles"
- -cc ("dynFluidEmitterCycleOptionChoice " + $parent)
- flEmitterCycleOM;
- menuItem -l "None (timeRandom off)" flEmitterCycleNone;
- menuItem -l "Frame (timeRandom on)" flEmitterCycleFrame;
- // menuItem -l "By Particle Count" flEmitterCycleCount;
-
- intSliderGrp -l "Cycle Interval"
- -ann "Number of frames/particles between restarts of random stream"
- -field true
- -min 1 -max 100
- -fmx $dynMaxFloatField
- //-pre 3 -step 0.5
- flEmitterCycleInterval;
-
- setParent ..;
- setParent ..;
-
-
- // Direction Layout
- //
- frameLayout -l "Distance Attributes"
- -bv true -lv true -cll true -cl true -mh 4
- flEmitterDirectionFL;
- columnLayout flEmitterDirectionCL;
-
- floatSliderGrp -l "Max Distance"
- -ann "Emit particles in a sphere bounded by this distance (does not apply to volumes)"
- -field true
- -min 0 -max 10
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- -cc flEmitterMaxDistCB
- flEmitterMaxDistance;
-
- floatSliderGrp -l "Min Distance"
- -ann "Emit particles in a sphere bounded by this distance (does not apply to volumes)"
- -field true
- -min 0 -max 10
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- -cc flEmitterMinDistCB
- flEmitterMinDistance;
-
- setParent ..;
- setParent ..;
-
- }
-
- global proc create3DFluidAndEmitterLayout( string $parent )
- {
- global float $dynMaxFloatField;
- global float $dynMinFloatField;
-
- setParent $parent;
-
- // Emitter Name Widget
- //
- textFieldGrp -l "Emitter Name"
- -annotation "Name for the new emitter"
- flEmitterName;
- checkBoxGrp -l "Parent to Container" -label1 ""
- -annotation "Parent emitter to container, or place at directly at center of container"
- flEmitterParenting;
-
- separator;
- createCreate3DFluidLayout( $parent );
-
- // Basic Emitter Attributes Layout
- //
- frameLayout -l "Basic Emitter Attributes"
- -bv true -lv true -cll true -cl false -mh 4
- flEmitterBasicFL;
- columnLayout flEmitterBasicCL;
-
- // Emitter Types Option Menu
- //
- optionMenuGrp -l "Emitter Type"
- -cc ("dynFluidEmitterOptionChoice " + $parent)
- -annotation "Select the emitter type: either omni-directional or volume"
- flEmitterTypeOM;
- menuItem -l "Omni" flEmitterOmniPoint;
- menuItem -l "Volume" flEmitterVolume;
-
- floatSliderGrp -l "Density Rate (/Voxel/Sec)"
- -ann "Density emission per voxel per second"
- -field true
- -min 0 -max 500
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 10
- flEmitterDensityRate;
-
- floatSliderGrp -l "Heat Rate (/Voxel/Sec)"
- -ann "Heat emission per voxel per second"
- -field true
- -min 0 -max 500
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 10
- flEmitterHeatRate;
-
- floatSliderGrp -l "Fuel Rate (/Voxel/Sec)"
- -ann "Fuel emission per voxel per second"
- -field true
- -min 0 -max 500
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 10
- flEmitterFuelRate;
-
- floatSliderGrp -l "Fluid Dropoff"
- -ann "Fluid dropoff within volume"
- -field true
- -min 0 -max 10
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step .1
- flEmitterFluidDropoff;
-
- optionMenuGrp -l "Cycle Emission"
- -ann "Restart random stream for this emitter each frame or after some number of particles"
- -cc ("dynFluidEmitterCycleOptionChoice " + $parent)
- flEmitterCycleOM;
- menuItem -l "None (timeRandom off)" flEmitterCycleNone;
- menuItem -l "Frame (timeRandom on)" flEmitterCycleFrame;
- // menuItem -l "By Particle Count" flEmitterCycleCount;
-
- intSliderGrp -l "Cycle Interval"
- -ann "Number of frames/particles between restarts of random stream"
- -field true
- -min 1 -max 100
- -fmx $dynMaxFloatField
- //-pre 3 -step 0.5
- flEmitterCycleInterval;
-
- setParent ..;
- setParent ..;
-
-
- // Direction Layout
- //
- frameLayout -l "Distance Attributes"
- -bv true -lv true -cll true -cl true -mh 4
- flEmitterDirectionFL;
- columnLayout flEmitterDirectionCL;
-
- floatSliderGrp -l "Max Distance"
- -ann "Emit particles in a sphere bounded by this distance (does not apply to volumes)"
- -field true
- -min 0 -max 10
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- -cc flEmitterMaxDistCB
- flEmitterMaxDistance;
-
- floatSliderGrp -l "Min Distance"
- -ann "Emit particles in a sphere bounded by this distance (does not apply to volumes)"
- -field true
- -min 0 -max 10
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- -cc flEmitterMinDistCB
- flEmitterMinDistance;
-
- setParent ..;
- setParent ..;
-
- // Volume Emitter Attributes Layout
- //
- int $collapse = 0;
-
- frameLayout -l "Volume Emitter Attributes"
- -bv true -lv true -cll true -cl $collapse -mh 4
- flEmitterVolumeFL;
- columnLayout flEmitterVolumeCL;
-
- text -align left -l "Set emitter type to Volume to enable" flEmitterVolumeEnablePrompt;
-
- optionMenuGrp -l "Volume Shape"
- -ann "Determines where particles are created (for volume type emitter, only)"
- -cc ("setDimmingForVolumeFluidEmitterAttributes " + $parent)
- flEmitterVolumeShapeOM;
- menuItem -l "Cube" flEmitterCube;
- menuItem -l "Sphere" flEmitterSphere;
- menuItem -l "Cylinder" flEmitterCylinder;
- menuItem -l "Cone" flEmitterCone;
- menuItem -l "Torus" flEmitterTorus;
-
- floatSliderGrp -label "Volume Offset X"
- -ann "Move volume away from actual emitter location"
- -field true
- -min -10 -max 10
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- flEmitterVolumeOffsetX;
-
- floatSliderGrp -label "Volume Offset Y"
- -ann "Move volume away from actual emitter location"
- -field true
- -min -10 -max 10
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- flEmitterVolumeOffsetY;
-
- floatSliderGrp -label "Volume Offset Z"
- -ann "Move volume away from actual emitter location"
- -field true
- -min -10 -max 10
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- flEmitterVolumeOffsetZ;
-
- floatSliderGrp -label "Volume Sweep"
- -ann "Change extent of volume, as in modelling"
- -field true
- -min 0 -max 360
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 3.6
- flEmitterVolumeSweep;
-
- floatSliderGrp -label "Section Radius"
- -ann "Change size of torus volume, as in modelling"
- -field true
- -min 0 -max 1.0
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 0.1
- flEmitterTorusSectionRadius;
-
- setParent ..;
- setParent ..;
- }
-
- global proc create2DFluidAndEmitterLayout( string $parent )
- {
- global float $dynMaxFloatField;
- global float $dynMinFloatField;
-
- setParent $parent;
-
- // Emitter Name Widget
- //
- textFieldGrp -l "Emitter Name"
- -annotation "Name for the new emitter"
- flEmitterName;
-
- checkBoxGrp -l "Parent to Container" -label1 ""
- -annotation "Parent emitter to container, or place at directly at center of container"
- flEmitterParenting;
-
- separator;
- createCreate2DFluidLayout( $parent );
-
- // Basic Emitter Attributes Layout
- //
- frameLayout -l "Basic Emitter Attributes"
- -bv true -lv true -cll true -cl false -mh 4
- flEmitterBasicFL;
- columnLayout flEmitterBasicCL;
-
- // Emitter Types Option Menu
- //
- optionMenuGrp -l "Emitter Type"
- -cc ("dynFluidEmitterOptionChoice " + $parent)
- -annotation "Select the emitter type: either omni-directional or volume"
- flEmitterTypeOM;
- menuItem -l "Omni" flEmitterOmniPoint;
- menuItem -l "Volume" flEmitterVolume;
-
- floatSliderGrp -l "Density Rate (/Voxel/Sec)"
- -ann "Density emission per voxel per second"
- -field true
- -min 0 -max 500
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 10
- flEmitterDensityRate;
-
- floatSliderGrp -l "Heat Rate (/Voxel/Sec)"
- -ann "Heat emission per voxel per second"
- -field true
- -min 0 -max 500
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 10
- flEmitterHeatRate;
-
- floatSliderGrp -l "Fuel Rate (/Voxel/Sec)"
- -ann "Fuel emission per voxel per second"
- -field true
- -min 0 -max 500
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 10
- flEmitterFuelRate;
-
- floatSliderGrp -l "Fluid Dropoff"
- -ann "Fluid dropoff within volume"
- -field true
- -min 0 -max 10
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step .1
- flEmitterFluidDropoff;
-
- optionMenuGrp -l "Cycle Emission"
- -ann "Restart random stream for this emitter each frame or after some number of particles"
- -cc ("dynFluidEmitterCycleOptionChoice " + $parent)
- flEmitterCycleOM;
- menuItem -l "None (timeRandom off)" flEmitterCycleNone;
- menuItem -l "Frame (timeRandom on)" flEmitterCycleFrame;
- // menuItem -l "By Particle Count" flEmitterCycleCount;
-
- intSliderGrp -l "Cycle Interval"
- -ann "Number of frames/particles between restarts of random stream"
- -field true
- -min 1 -max 100
- -fmx $dynMaxFloatField
- //-pre 3 -step 0.5
- flEmitterCycleInterval;
-
- setParent ..;
- setParent ..;
-
-
- // Direction Layout
- //
- frameLayout -l "Distance Attributes"
- -bv true -lv true -cll true -cl true -mh 4
- flEmitterDirectionFL;
- columnLayout flEmitterDirectionCL;
-
- floatSliderGrp -l "Max Distance"
- -ann "Emit particles in a sphere bounded by this distance (does not apply to volumes)"
- -field true
- -min 0 -max 10
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- -cc flEmitterMaxDistCB
- flEmitterMaxDistance;
-
- floatSliderGrp -l "Min Distance"
- -ann "Emit particles in a sphere bounded by this distance (does not apply to volumes)"
- -field true
- -min 0 -max 10
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- -cc flEmitterMinDistCB
- flEmitterMinDistance;
-
- setParent ..;
- setParent ..;
-
- // Volume Emitter Attributes Layout
- //
- int $collapse = 0;
-
- frameLayout -l "Volume Emitter Attributes"
- -bv true -lv true -cll true -cl $collapse -mh 4
- flEmitterVolumeFL;
- columnLayout flEmitterVolumeCL;
-
- text -align left -l "Set emitter type to Volume to enable" flEmitterVolumeEnablePrompt;
-
- optionMenuGrp -l "Volume Shape"
- -ann "Determines where particles are created (for volume type emitter, only)"
- -cc ("setDimmingForVolumeFluidEmitterAttributes " + $parent)
- flEmitterVolumeShapeOM;
- menuItem -l "Cube" flEmitterCube;
- menuItem -l "Sphere" flEmitterSphere;
- menuItem -l "Cylinder" flEmitterCylinder;
- menuItem -l "Cone" flEmitterCone;
- menuItem -l "Torus" flEmitterTorus;
-
- floatSliderGrp -label "Volume Offset X"
- -ann "Move volume away from actual emitter location"
- -field true
- -min -10 -max 10
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- flEmitterVolumeOffsetX;
-
- floatSliderGrp -label "Volume Offset Y"
- -ann "Move volume away from actual emitter location"
- -field true
- -min -10 -max 10
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- flEmitterVolumeOffsetY;
-
- floatSliderGrp -label "Volume Offset Z"
- -ann "Move volume away from actual emitter location"
- -field true
- -min -10 -max 10
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- flEmitterVolumeOffsetZ;
-
- floatSliderGrp -label "Volume Sweep"
- -ann "Change extent of volume, as in modelling"
- -field true
- -min 0 -max 360
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 3.6
- flEmitterVolumeSweep;
-
- floatSliderGrp -label "Section Radius"
- -ann "Change size of torus volume, as in modelling"
- -field true
- -min 0 -max 1.0
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 0.1
- flEmitterTorusSectionRadius;
-
- setParent ..;
- setParent ..;
- }
-
-